package vo

import (
	"boy-go/pkg/request"
	"boy-go/pkg/xtime"
	"time"
)

type SysDeptModel struct {
	DeptId     int64   `json:"deptId" form:"deptId"`         // 部门id
	ParentId   *int64  `json:"parentId" form:"parentId"`     // 父部门id
	Ancestors  *string `json:"ancestors" form:"ancestors"`   // 祖级列表
	DeptName   *string `json:"deptName" form:"deptName"`     // 部门名称
	OrderNum   *int64  `json:"orderNum" form:"orderNum"`     // 显示顺序
	Leader     *string `json:"leader" form:"leader"`         // 负责人
	Phone      *string `json:"phone" form:"phone"`           // 联系电话
	Email      *string `json:"email" form:"email"`           // 邮箱
	Status     *string `json:"status" form:"status"`         // 部门状态（0正常 1停用）
	DelFlag    *string `json:"delFlag" form:"delFlag"`       // 删除标志（0代表存在 2代表删除）
	CreateBy   *string `json:"createBy" form:"createBy"`     // 创建者
	CreateTime *string `json:"createTime" form:"createTime"` // 创建时间
	UpdateBy   *string `json:"updateBy" form:"updateBy"`     // 更新者
	UpdateTime *string `json:"updateTime" form:"updateTime"` // 更新时间
}

func (item *SysDeptModel) CreateAt(t *time.Time) {
	item.CreateTime = xtime.TS.Format(t)
}
func (item *SysDeptModel) UpdateAt(t *time.Time) {
	item.UpdateTime = xtime.TS.Format(t)
}

type QuerySysDeptReq struct {
	request.PageRequest         // 分页参数
	DeptId              int64   `json:"deptId" form:"deptId"`         // 部门id
	ParentId            *int64  `json:"parentId" form:"parentId"`     // 父部门id
	Ancestors           *string `json:"ancestors" form:"ancestors"`   // 祖级列表
	DeptName            *string `json:"deptName" form:"deptName"`     // 部门名称
	OrderNum            *int64  `json:"orderNum" form:"orderNum"`     // 显示顺序
	Leader              *string `json:"leader" form:"leader"`         // 负责人
	Phone               *string `json:"phone" form:"phone"`           // 联系电话
	Email               *string `json:"email" form:"email"`           // 邮箱
	Status              *string `json:"status" form:"status"`         // 部门状态（0正常 1停用）
	DelFlag             *string `json:"delFlag" form:"delFlag"`       // 删除标志（0代表存在 2代表删除）
	CreateBy            *string `json:"createBy" form:"createBy"`     // 创建者
	CreateTime          *string `json:"createTime" form:"createTime"` // 创建时间
	UpdateBy            *string `json:"updateBy" form:"updateBy"`     // 更新者
	UpdateTime          *string `json:"updateTime" form:"updateTime"` // 更新时间
}
type ListSysDeptRsp struct {
	List  []*SysDeptModel
	Total int64
}

type AddSysDeptReq struct {
	DeptId     int64   `json:"deptId" form:"deptId"`         // 部门id
	ParentId   *int64  `json:"parentId" form:"parentId"`     // 父部门id
	Ancestors  *string `json:"ancestors" form:"ancestors"`   // 祖级列表
	DeptName   *string `json:"deptName" form:"deptName"`     // 部门名称
	OrderNum   *int64  `json:"orderNum" form:"orderNum"`     // 显示顺序
	Leader     *string `json:"leader" form:"leader"`         // 负责人
	Phone      *string `json:"phone" form:"phone"`           // 联系电话
	Email      *string `json:"email" form:"email"`           // 邮箱
	Status     *string `json:"status" form:"status"`         // 部门状态（0正常 1停用）
	DelFlag    *string `json:"delFlag" form:"delFlag"`       // 删除标志（0代表存在 2代表删除）
	CreateBy   *string `json:"createBy" form:"createBy"`     // 创建者
	CreateTime *string `json:"createTime" form:"createTime"` // 创建时间
	UpdateBy   *string `json:"updateBy" form:"updateBy"`     // 更新者
	UpdateTime *string `json:"updateTime" form:"updateTime"` // 更新时间
}
type AddSysDeptRsp struct {
	DeptId int64 `json:"deptId" form:"deptId"` // 部门id
}

type EditSysDeptReq struct {
	DeptId     int64   `json:"deptId" form:"deptId"`         // 部门id
	ParentId   *int64  `json:"parentId" form:"parentId"`     // 父部门id
	Ancestors  *string `json:"ancestors" form:"ancestors"`   // 祖级列表
	DeptName   *string `json:"deptName" form:"deptName"`     // 部门名称
	OrderNum   *int64  `json:"orderNum" form:"orderNum"`     // 显示顺序
	Leader     *string `json:"leader" form:"leader"`         // 负责人
	Phone      *string `json:"phone" form:"phone"`           // 联系电话
	Email      *string `json:"email" form:"email"`           // 邮箱
	Status     *string `json:"status" form:"status"`         // 部门状态（0正常 1停用）
	DelFlag    *string `json:"delFlag" form:"delFlag"`       // 删除标志（0代表存在 2代表删除）
	CreateBy   *string `json:"createBy" form:"createBy"`     // 创建者
	CreateTime *string `json:"createTime" form:"createTime"` // 创建时间
	UpdateBy   *string `json:"updateBy" form:"updateBy"`     // 更新者
	UpdateTime *string `json:"updateTime" form:"updateTime"` // 更新时间
}
type EditSysDeptRsp struct {
	DeptId int64 `json:"deptId" form:"deptId"` // 部门id
}
